The present invention relates generally to method and apparatus for providing remote human interactive assistance for software systems, particularly to method and apparatus for providing human interactive assistance for application programs.
Although help systems on application programs have been improved, they still cannot anticipate all situations and problems. Therefore, human interactive assistances are sometimes needed to answer questions or solve problems for users. Conventionally, due to limitations on human resource and service cost, software companies have been providing experts via remote communication (such as telephone communication) to assist a large number of users who are located in different geographic locations in using application programs. Typical application programs that are currently available to users include word processing program, spreadsheet, database program, time schedule program, financial management program, accounting program, graphic drawing program, business critical software, etc. It can be predicted that more and more new types of application programs will be commercially available to the users in near future.
Unfortunately, it is becoming more and more difficult and less and less feasible to use the conventional approach to assist users in using application programs via remote communication. This is so because of fast developments in computer hardware and software technology. With increasing processing power of computer hardware, application programs become more complex and complicated to use. A particular application program may have many commands, and the user""s manual for the particular application program may be hundreds of pages long. Thus, it is not uncommon that, even though a user regularly uses basic commands of a particular application program, he/she does not have the knowledge as how to use some advanced commands of the particular application program. It is also not uncommon that, even though a user uses a command of a particular application program, he/she does not grasp all subtle aspects of the command.
In a working environment, one reality makes it even more difficult for an expert to answer questions or solve problems for a user via remote communication. That is, by the time a user is requesting assistance from an application program expert, the user may have executed many application program commands that have either changed one or more existing data items in a data file (or changed the data structure of a data file), or created new data item in a data file. (In database program, a data item can be a record consisting of several fields; in spreadsheet program, a data item can be a record consisting of several cells; in word processing program, a data item can be a page of a document; etc.). There may be a situation where the user finds that several previously executed commands have generated undesirable results. The user subsequently executes several more commands, attempting to correct the mistakes he/she previously made. Such an attempt may make the situation even worse. The user finally gives up and asks an expert for interactive assistance.
Under such a scenario, before answering questions or searching solutions, the conventional method requires an application program expert to collect information over telephone, such as: what is the version of the application software the user is operating on, what specific commands have been executed, what are the intended results the user wants to get, at what step the results were not desirable, etc. However, from a user who does not have a good command of the application software, it is very difficult and time consuming to collect accurate information via remote communication. Without such accurate information, application program experts will not be able to assist users effectively and efficiently.
Therefore, there exists a need for improved method and apparatus that can enable application program experts to remotely assist users effectively and efficiently.
The present invention meets this need.
In one aspect, the invention provides an improved method for providing assistance for an application program. The method comprises the steps of:
(a) running said application program by a user;
(b) collecting information;
(c) requesting assistance from a person; and
(d) establishing communication link between said user and assistor in response to said request, so that said collected information can be sent to said person via said communication link.
In another aspect, the invention provides an apparatus for providing assistance for an application program. The apparatus comprises:
(a) means for running said application program by a user;
(b) means for collecting information;
(c) means for requesting assistance from a person; and
(d) means for establishing communication link between said user and assistor in response to said request, so that said collected information can be sent to said person via said communication link.
These and other features and advantages of the present invention will become apparent from the following description and accompanying drawings.